/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dao;

import java.util.Collection;
import java.util.Date;
import java.util.List;

import pe.com.cotelasa.common.dao.IDao;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dominio.common.COLOR_ESTADO_VENTA;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.VentaFacturacion;

/**
 *
 * @author Jorge
 */
public interface IDAOVentaFacturacion extends IDao<VentaFacturacion,Integer>{

    public int obtenerIdMonedaFacturacion(Integer idVentaFacturacion) throws DAOException;

    public int obtenerIdFormaPagoFacturacion(Integer idVentaFacturacion) throws DAOException;

    public int obtenerIdMotivoTrasladoFacturacion(Integer idVentaFacturacion) throws DAOException;

    public int obtenerIdTipoDocumento(Integer idVentaFacturacion) throws DAOException;

    public void eliminarDetalleFactura(Integer idVentaFacturacion) throws DAOException;

    public List<VentaFacturacion> listarFacturacionTipo(Integer tipo) throws DAOException;

    public List<VentaFacturacion> listarFacturacionPendientes(Integer tipo, Integer formapago, Integer idCliente, Character estado, Integer idSede) throws DAOException;

    public List<VentaFacturacion> obtenerFacturasRV(String inicio, String fin, Integer idSede) throws DAOException;

    public List<VentaFacturacion> obtenerVentaFacturacionBusqueda(VentaFacturacion ventaFacturacion,
            Date fechaInicio,
            Date fechaFinal) throws DAOException;

    public List<VentaFacturacion> obtenerGuiasParaFactura(VentaFacturacion ventaFacturacion) throws DAOException;

    public List<VentaFacturacion> obtenerFacturasExportacionReporte(VentaFacturacion ventaFacturacion) throws DAOException;

    public Collection<VentaFacturacion> obtenerGuiasPorSerie(VentaFacturacion ventaFacturacion, Date fechaInicio, Date fechaFinal, int idEmpresa) throws DAOException;
    
    public Collection<VentaFacturacion> buscarFacturasParaLetras(Integer idCliente,Integer idMoneda, String tipoPago,String estadoCancelacion,Character estadoRegistro) throws DAOException;
    
    public Collection<VentaFacturacion> buscarFacturasParaLetras(Integer idCliente, Integer idMoneda,String estadoCancelacion, Character estadoRegistro)throws DAOException; 
    
    public void actualizarFacturasPagadas(List<VentaFacturacion> listaVentaFacturacion) throws DAOException;
    
    public Collection<VentaFacturacion> obtenerVentaFacturacion(Integer idCliente, Integer idMoneda,String estadoCancelacion, Character estadoRegistro,String numFactura)throws DAOException;
    
}
